package com.iflytek.jcy.supervise.datastore.dto;

import java.util.List;

/**
 * @author <a href=mailto:ktyi@iflytek.com>伊开堂</a>
 * @date 2022/10/20
 */
public class TableInfo {

    // 表类别（可为 null）
    protected String tableCat;

    // 表模式（可为 null）
    protected String tableSchem;

    // 表名称
    protected String tableName;

    // 表类型。典型的类型是 "TABLE"、"VIEW"、"SYSTEM TABLE"、"GLOBAL TEMPORARY"、"LOCAL TEMPORARY"、"ALIAS" 和 "SYNONYM"。
    protected String tableType;

    // 表的解释性注释
    protected String remarks;

    // 类型的类别（可为 null）
    protected String typeCat;

    // 类型模式（可为 null）
    protected String typeSchem;

    // 类型名称（可为 null）
    protected String tableTypeName;

    // 有类型表的指定 "identifier" 列的名称（可为 null）
    protected String selfReferencingColName;

    // 指定在 SELF_REFERENCING_COL_NAME 中创建值的方式。这些值为 "SYSTEM"、"USER" 和 "DERIVED"。（可能为 null）
    protected String refGeneration;

    // 表所包含的字段信息
    protected List<FieldInfo> fieldInfos;

    public String getTableCat() {
        return tableCat;
    }

    public void setTableCat(String tableCat) {
        this.tableCat = tableCat;
    }

    public String getTableSchem() {
        return tableSchem;
    }

    public void setTableSchem(String tableSchem) {
        this.tableSchem = tableSchem;
    }

    public String getTableName() {
        return tableName;
    }

    public void setTableName(String tableName) {
        this.tableName = tableName;
    }

    public String getTableType() {
        return tableType;
    }

    public void setTableType(String tableType) {
        this.tableType = tableType;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public String getTypeCat() {
        return typeCat;
    }

    public void setTypeCat(String typeCat) {
        this.typeCat = typeCat;
    }

    public String getTypeSchem() {
        return typeSchem;
    }

    public void setTypeSchem(String typeSchem) {
        this.typeSchem = typeSchem;
    }

    public String getTableTypeName() {
        return tableTypeName;
    }

    public void setTableTypeName(String tableTypeName) {
        this.tableTypeName = tableTypeName;
    }

    public String getSelfReferencingColName() {
        return selfReferencingColName;
    }

    public void setSelfReferencingColName(String selfReferencingColName) {
        this.selfReferencingColName = selfReferencingColName;
    }

    public String getRefGeneration() {
        return refGeneration;
    }

    public void setRefGeneration(String refGeneration) {
        this.refGeneration = refGeneration;
    }

    public List<FieldInfo> getFieldInfos() {
        return fieldInfos;
    }

    public void setFieldInfos(List<FieldInfo> fieldInfos) {
        this.fieldInfos = fieldInfos;
    }

    @Override
    public String toString() {
        return "TableInfo{" + "tableCat='" + tableCat + '\'' + ", tableSchem='" + tableSchem + '\'' + ", tableName='" +
               tableName + '\'' + ", tableType='" + tableType + '\'' + ", remarks='" + remarks + '\'' + ", typeCat='" +
               typeCat + '\'' + ", typeSchem='" + typeSchem + '\'' + ", tableTypeName='" + tableTypeName + '\'' +
               ", selfReferencingColName='" + selfReferencingColName + '\'' + ", refGeneration='" + refGeneration +
               '\'' + ", fieldInfos=" + fieldInfos + '}';
    }
}
